"""
{
    "id": "imageagent-e4d51ba3-37a7-4aff-85e5-9c33583711d7",
    "created": 1746777175,
    "agent_prompt_type": "发票",
    "json_result_cn": {
        "机器号": "667220920461",
    },
    "json_result_en": {
        "machine_no": "667220920461",
    },
    "success": true
}
"json_result_en"映射为驼峰式，如machine_no变为machineNo，函数实现；
"""

import json

def snake_to_camel(snake_str):
    """
    将下划线命名法转换为驼峰命名法
    例如：machine_no -> machineNo
    """
    components = snake_str.split('_')
    # 第一个单词保持小写，其余单词首字母大写
    return components[0] + ''.join(x.title() for x in components[1:])


def convert_dict_keys_to_camel_case(data):
    """
    递归地将字典中的键从下划线命名法转换为驼峰命名法
    """
    if not isinstance(data, dict):
        return data
    
    new_dict = {}
    for key, value in data.items():
        # 转换键名
        camel_key = snake_to_camel(key)
        
        # 如果值是字典，递归处理
        if isinstance(value, dict):
            value = convert_dict_keys_to_camel_case(value)
        # 如果值是列表，递归处理列表中的每个元素
        elif isinstance(value, list):
            value = [convert_dict_keys_to_camel_case(item) if isinstance(item, dict) else item for item in value]
            
        new_dict[camel_key] = value
    
    return new_dict


def convert_json_result_en_to_camel_case(input_json):
    """
    将包含json_result_en字段的JSON数据转换为驼峰命名法
    """
    # 如果输入是字符串，先解析成字典
    if isinstance(input_json, str):
        data = json.loads(input_json)
    else:
        data = input_json
    
    # 检查是否包含json_result_en字段
    if "json_result_en" in data:
        # 只转换json_result_en字段
        data["json_result_en"] = convert_dict_keys_to_camel_case(data["json_result_en"])
    
    return data


# 示例用法
if __name__ == "__main__":
    # 读取示例JSON数据 (使用三重引号中的数据)
    sample_json = """
    {
        "id": "imageagent-e4d51ba3-37a7-4aff-85e5-9c33583711d7",
        "created": 1746777175,
        "agent_prompt_type": "发票",
        "json_result_cn": {
            "机器号": "667220920461",
        },
        "json_result_en": {
            "machine_no": "667220920461",
        },
        "success": true
    }
    """
    
    # 转换JSON
    converted_data = convert_json_result_en_to_camel_case(sample_json)
    
    # 打印转换后的结果
    print("转换结果:")
    print(json.dumps(converted_data, indent=4, ensure_ascii=False))
    
    # 特别展示json_result_en字段的转换
    print("\njson_result_en转换结果:")
    print(json.dumps(converted_data["json_result_en"], indent=4, ensure_ascii=False))